home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Python 1.3.3 / Python 133 SRC / Lib / UserList.py < prev    next >
Text File  |  1995-12-21  |  1KB  |  38 lines

  1. # A more or less complete user-defined wrapper around list objects
  2.  
  3. class UserList:
  4.     def __init__(self, list = None):
  5.         self.data = []
  6.         if list is not None:
  7.             if type(list) == type(self.data):
  8.                 self.data[:] = list
  9.             else:
  10.                 self.data[:] = list.data[:]
  11.     def __repr__(self): return repr(self.data)
  12.     def __cmp__(self, list):
  13.         if type(list) == type(self.data):
  14.             return cmp(self.data, list)
  15.         else:
  16.             return cmp(self.data, list.data)
  17.     def __len__(self): return len(self.data)
  18.     def __getitem__(self, i): return self.data[i]
  19.     def __setitem__(self, i, item): self.data[i] = item
  20.     def __delitem__(self, i): del self.data[i]
  21.     def __getslice__(self, i, j):
  22.         userlist = UserList()
  23.         userlist.data[:] = self.data[i:j]
  24.         return userlist
  25.     def __setslice__(self, i, j, list):
  26.         if type(list) == type(self.data):
  27.             self.data[i:j] = list
  28.         else:
  29.             self.data[i:j] = list.data
  30.     def __delslice__(self, i, j): del self.data[i:j]
  31.     def append(self, item): self.data.append(item)
  32.     def insert(self, i, item): self.data.insert(i, item)
  33.     def remove(self, item): self.data.remove(item)
  34.     def count(self, item): return self.data.count(item)
  35.     def index(self, item): return self.data.index(item)
  36.     def reverse(self): self.data.reverse()
  37.     def sort(self, *args): apply(self.data.sort, args)
  38.